package com.sdk4.jinritemai.model.request;

import com.sdk4.jinritemai.DoudianRequest;
import com.sdk4.jinritemai.model.response.DoudianSkuSyncStockBatchResponse;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

@Getter
@Setter
public class DoudianSkuSyncStockBatchRequest implements DoudianRequest<DoudianSkuSyncStockBatchResponse> {
    private final String method = "sku.syncStockBatch";

    /**
     * 商品id
     */
    private String productId;

    /**
     * 需要批量提交的skuid及对应的库存信息
     */
    private List<SkuSyncList> skuSyncList;

    /**
     * true表示增量库存，false表示全量库存，默认为false
     */
    private String incremental;

    /**
     * 幂等ID， incremental=true的时候必填
     */
    private String idempotentId;

    @Override
    public String getMethod() {
        return method;
    }

    @Override
    public Class<DoudianSkuSyncStockBatchResponse> getResponseClass() {
        return DoudianSkuSyncStockBatchResponse.class;
    }


    @Getter
    @Setter
    public static class SkuSyncList {
        /**
         * SKUid
         */
        private String skuId;
        /**
         * 库存类型：0普通库存，1区域库存，10为阶梯库存
         */
        private String skuType;
        /**
         * sku_type为1是，才传入
         */
        private String stockMap;
        /**
         * 供应商ID
         */
        private String supplierId;
        /**
         * 阶梯库存，sku_type为10时才能更新
         */
        private Integer stepStockNum;
        /**
         * sku_type为0是，才传入
         */
        private Integer stockNum;


        @Getter
        @Setter
        public static class stockMap {
            /**
             * 阶梯库存，sku_type为10时才能更新
             */
            private String outWarehouseId;
            /**
             * 阶梯库存，sku_type为10时才能更新
             */
            private String stockNum;
        }

    }

}
